﻿@model IEnumerable<myFinance.Models.ViewModels.ContaViewModel>
@{
	ViewBag.Title = "Contas";
}
<!DOCTYPE html>
<html>
<head>
    <title>Index</title>
    @if (false)
    {
        <script type="text/javascript" src="../../Scripts/jquery-1.6.4-vsdoc.js"></script>
        <script type="text/javascript" src="../../Scripts/jquery.validate-vsdoc.js"></script>
        <script type="text/javascript" src="../../Scripts/jquery.validate.js"></script>
        <script type="text/javascript" src="../../Scripts/numbers.js"></script>
        <script type="text/javascript" src="../../Scripts/script.js"></script>
    }   
    <style type="text/css">
        .grid
        {
            min-width: 900px;
            width: 100%;
            margin: auto;
        }
        .cod-ref-header, .cod-ref
        {
            text-align: center;
            width: 50px;
        }
        .datas-header, .datas
        {
            text-align: center;
            width: 70px;
        }
        .parcela-header, .parcela
        {
            text-align: center;
            width: 50px;
        }
        .valores-header, .valores
        {
            text-align: center;
            width: 80px;
        }
        .valores
        {
            text-align: right;
            padding-right: 5px;
        }
        .entrada
        {
            color: Blue;
        }
        .saida
        {
            color: Red;
        }
        .fechado-header, .fechado
        {
            text-align: center;
            width: 40px;
        }
        .desc
        {
            padding-left: 5px;
        }
        .opcoes
        {
            width: 90px;
            text-align: center;
            padding: 0;
        }
        #Mes, #Ano
        {
            width: 130px;
            padding: 0 0 0 2px;
        }
        #Ano
        {
            width: 70px;
        }
        #filtrar
        {
            padding: 0 4px;
            margin-left: 20px;
        }
        #novo
        {
            font-size: 1.8em;
            padding: 20px;
        }
    </style>
</head>
<body>
    <table class="grid">
        <thead>
            <tr>
                <th colspan="9" id="novo">
                    <a href="@Url.Action("Cadastro", "Conta")/0" id="novaconta">Nova conta</a>
                </th>
            </tr>
            <tr>
                <th colspan="9">
                    Filtro por período:
                    @Html.DropDownList("Mes", (IEnumerable<SelectListItem>)ViewBag.ComboMes)
                    @Html.DropDownList("Ano", (IEnumerable<SelectListItem>)ViewBag.ComboAno)
                    @Html.RadioButton("TipoData", true, new { id = "datacadastro", style = "margin-left: 10px;" })
                    <label for="datacadastro">
                        Data de Cadastro</label>
                    @Html.RadioButton("TipoData", false, true, new { id = "datavencimento", style = "margin-left: 10px;" })
                    <label for="datavencimento">
                        Data de Vencimento</label>
                    <input type="button" value="Filtrar" id="filtrar" />
                </th>
            </tr>
            <tr>
                <th class="cod-ref-header">
                    Cód. Ref.
                </th>
                <th>
                    Descricão
                </th>
                <th class="datas-header">
                    Data Cad
                </th>
                <th class="datas-header">
                    Data Venc
                </th>
                <th class="parcela-header">
                    Parcelas
                </th>
                <th class="valores-header">
                    Entrada
                </th>
                <th class="valores-header">
                    Saida
                </th>
                <th class="fechado-header">
                    Fechado
                </th>
                <th class="opcoes">
                </th>
            </tr>
        </thead>
        @if (Model.Count() > 0)
        {
            <tbody>
                @foreach (var item in Model)
                {
                    <tr>
                        <td class="cod-ref">
                            @item.CodRef
                        </td>
                        <td class="desc">
                            @Html.DisplayFor(modelItem => item.Descricao)
                        </td>
                        <td class="datas">
                            @item.DataCadastro.ToShortDateString()
                        </td>
                        <td class="datas">
                            @item.DataVencimento.ToShortDateString()
                        </td>
                        <td class="parcela">
                            @Html.DisplayFor(modelItem => item.Parcelas)
                        </td>
                        @if (item.Entrada == 1)
                        {
                            <td class="valores entrada">
                                @item.Valor.ToString("N2")
                            </td>
                            <td class="valores saida" style="text-align: center">
                                -----
                            </td>
                        }
                        else
                        {
                            <td class="valores entrada" style="text-align: center">
                                -----
                            </td>
                            <td class="valores saida">
                                @item.Valor.ToString("N2")
                            </td>
                        }
                        <td class="fechado">
                            @Html.DisplayFor(modelItem => item.Fechado)
                        </td>
                        <td class="opcoes">
                            <a href="@Url.Action("Cadastro", "Conta")/@item.CodRef" class="editar">Editar</a>
                            | <a href="#" data-url="@Url.Action("Excluir", "Conta")/@item.CodRef" class="excluir" onclick="return false;" >
                                Excluir</a>
                        </td>
                    </tr>
                }
            </tbody>
            
                var totalEntradas = Model.Where(w => w.Entrada == 1).Sum(s => s.Valor);
                var totalSaidas = Model.Where(w => w.Entrada == 2).Sum(s => s.Valor);
                var totalGeral = totalEntradas - totalSaidas;
                var classeTotal = totalGeral >= 0 ? "entrada" : "saida";
            
            <tfoot>
                <tr style="text-align: right">
                    <td colspan="5">
                        Totais:
                    </td>
                    <td class="entrada">@totalEntradas.ToString("N2")
                    </td>
                    <td class="saida">@totalSaidas.ToString("N2")
                    </td>
                    <td colspan="2">
                    </td>
                </tr>
                <tr style="text-align: right; font-size: 14px;">
                    <td colspan="5">
                        Total Geral:
                    </td>
                    <td colspan="2" class="@classeTotal">@Math.Round(totalGeral, 2).ToString("N2")
                    </td>
                    <td colspan="2">
                    </td>
                </tr>
            </tfoot>
        }
        else
        {
            <tbody>
                <tr>
                    <td colspan="9">
                        &nbsp;Não foram encontrados registros ou ainda não existem contas cadastradas.
                    </td>
                </tr>
            </tbody>
            <tfoot>
                <tr>
                    <td colspan="9">
                    </td>
                </tr>
            </tfoot>
        }
    </table>
    <div id="saldo-total">
    </div>
    <script type="text/javascript">
        $(function () {
        	loadTable('grid');
            hideLoading();
        });
        function loadCad(e, id) {
            showLoading();
            $('section#main').load('/' + id);
            e.preventDefault();
        }       
        $('#filtrar').click(function () {
            showLoading();
            $.ajax({
                url: '@Url.Action("Filtrar", "Conta")',
                type: 'GET',
                dataType: 'json',
                data: { mes: $('#Mes').val(), ano: $('#Ano').val(), tipoData: $("input[name='TipoData']:checked").val() },
                error: function () {
                    alert('Houve um erro na requisição dos dados!\nPor favor, entre em contato com o Administrador do seu sistema.');
                    hideLoading();
                },
                success: function (data) {
                    var html = "";
                    if (data != "" || data != undefined) {
                        $('.grid tbody').empty().append(data.tbody);
                        $('.grid tfoot').empty().append(data.tfoot);
                        hideLoading();
                    }
                },
                statusCode: {
                    500: function () {
                        alert('ERROR TYPE: 500 Internal Server Error\n\nHouve um erro na resposta do servidor.\nPor favor, entre em contato com o Administrador do seu sistema.');
                        hideLoading();
                    },
                    404: function () {
                        alert('ERROR TYPE: 404 Not Found\n\nA URL requisitada não existe.\nPor favor, entre em contato com o Administrador do seu sistema.');
                        hideLoading();
                    }
                }
            });
        });
	</script>
</body>
</html>
